package com.xiangge.loop;

import java.util.Random;
import java.util.Scanner;

public class LoopTest {
    public static void main5(String[] args) {
        // 定义double类型的变量
        double PI = 0.0;
        int n = 1;
        double bit = 0.0;
        // 使用死循环模拟
        while (true){
            // 计算当前bit的值
            bit = 4.0 / (2 * n - 1);
            // 使用if双选结构判断是奇是偶
            if (n % 2 == 1){
                PI = PI + bit;
            }else {
                PI = PI - bit;
            }
            // 判断是否在范围内
            if (PI >= 3.1415926 && PI <=3.1415927){
                break;
            }
            // 如果不在范围内，没有结束循环
            n++;
        }
        System.out.println("总共计算了" + n + "次");
    }
    public static void main4(String[] args) {
        // 使用多层for循环嵌套
        for (int i = 0;i <= 9;i++){
            for (int j = 0;j <= 12;j++){
                for (int k = 0;k <=36;k++){
                    if ((i*4+j*3+k/2==36)&&(i+j+k==36)&&(k%2==0)){
                        System.out.println("男"+i +"女"+j +"小孩"+k);
                    }
                }
            }
        }
    }
    public static void main3(String[] args) {
        // 键盘录入，使用Scanner对象
        System.out.println("请输入[0,9]之间的整数n：");
        int n = new Scanner(System.in).nextInt();
        // 使用if单选结构排除错误
        if (n < 0 || n > 9){
            System.err.println("输入错误");
            return;
        }
        // 定义int类型的变量
        int sum = 0;
        int bit = 0;
        // 使用for循环来定义变量
        // 用i来代表每个次方
        for (int i = 1; i < 6; i++) {
            bit = (int)Math.pow(10, i-1) * n + bit;
            sum += bit;
        }
        System.out.println(sum);
    }
    public static void main2(String[] args) {
        // 定义int类型的变量
        int count = 0;
        int i ,j;
        // 使用for嵌套循环，外循环来定义2-100的质数
        for (i = 2;i <= 100;i++){
            // 定义布尔值，如果为质数，则是true
            boolean flag = true;
            // 内循环用来定义求质数的方法，质数不能被2到它本身的数整除
            for (j = 2;j <= i-1;j++){
                if (i % j == 0){
                    // 如果能被整除，则不是质数，将flag改为false，并结束循环
                    flag = false;
                    break;
                }
            }
            // 使用if双选结构来用flag进行质数判断
            if (flag == true){
                System.out.println(i + "是");
            }else {
                System.out.println(i + "不是");
            }
        }
    }
    public static void main1(String[] args) {
        // 使用Random自动生成一个对象，在1-100之间
        Random random = new Random();
        int num = random.nextInt(100) + 1;
        // 创建键盘录入
        Scanner input = new Scanner(System.in);

        // 定义一个int类型变量，来控制猜测次数
        int count = 0;
        // 不知道要猜多少次，是死循环，用while（true）
        while (true){
            // 猜测数字
            System.out.println("请输入猜测数字【1-100】：");
            int guess = input.nextInt();
            // 使用if多选结构判断
            if (guess > num){
                System.out.println("猜大了");
            }else if (guess < num){
                System.out.println("猜小了");
            }else {
                System.out.println("猜对了");
                break; // 当情况正确的时候结束，跳出循环
            }
            // break如果在这里，那while循环之中的if条件判断只会执行一次就结束
            count++;
            if (count == 3){
                System.out.println("机会用光了");
                break;
            }
        }
    }
}
